鸿蒙设备开发Hi3861 |
您所在的位置:网站首页 › hi3861 数据手册 › 鸿蒙设备开发Hi3861 |
想了解更多内容,请访问: 51CTO和华为官方合作共建的鸿蒙技术社区 https://harmonyos.51cto.com 1. 项目来源有一天半夜宿舍门被一个喝晕的哥们打开了,(说他晕吧他居然知道钥匙在门框上)于是有了设计自动门锁的想法。正好一直想用Hi3861做一个iot落地项目【之前挖的坑】,一切刚好! 2. 需求分析无钥匙进入 手机端操作 不影响使用钥匙开门 无损安装、卸载自动开门机构 3. 宿舍门锁考察水平向右移动拉闩1cm左右即可开门,由于宿舍们老旧,拉力实测在2.5L水左右。经过粗略计算,如果使用9g舵机来驱动,单杠驱动结构的话,杠杆长度比为2500/9≈278,尺寸有些夸张。不想在机械结构上费时间,所以选取大扭矩舵机驱动。 典型的曲柄滑块结构。选取了绳索拉动、连杆方案。综合考虑耐用度和安装便携性,选取绳索驱动方案。 使用套壳的方式安装在门锁体上,拉闩自由移动,不影响手动开门。 ![]() Hi3861根据web端发送过来的质量控制舵机转动即可。控制信号来源于web端,采用MQTT协议来处理数据,电源使用5V 2A模块,一路单独给舵机。 ![]() 这个直接参考连老师的这篇文章【如何在鸿蒙系统中移植 Paho-MQTT 实现MQTT协议】即可,感谢连老师! 本项目只需要将:服务器地址改为自己的IP、订阅自己web端的Topic、提取消息数据。 主要代码如下: /*连接web端 只展示主要逻辑,完整见附件*/ int mqtt_connect(void) { //0.连接web端 char* payload = "Hello Kun,have a Nice Day!"; int payloadlen = strlen(payload); int len = 0; char *host = "192.168.xxx.xx"; //自己的ip int port = 1883; //mqtt服务端口 mysock = transport_open(host, port); /* 1.订阅web端话题 */ topicString.cstring = "porsche"; if (MQTTPacket_read(buf, buflen, transport_getdata) == SUBACK) /* wait for suback */ { rc = MQTTDeserialize_suback(&submsgid, 1, &subcount, &granted_qos, buf, buflen); } /*2. 循环接收发布者的话题消息 */ topicString.cstring = "hi3861"; char door_passward[] ="notfound404"; //开门密令 char cmd_msg[12]; //存储web端发来的数据 while (!toStop) { if (MQTTPacket_read(buf, buflen, transport_getdata) == PUBLISH) { MQTTString receivedTopic; rc = MQTTDeserialize_publish(&dup, &qos, &retained, &msgid, &receivedTopic, &payload_in, &payloadlen_in, buf, buflen); for ( i = 0; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |